#ifndef GENERATOR_H
#define GENERATOR_H

#include "SimpleGraph.h"
#include "CompleteGraph.h"

namespace zbp
{
	typedef std::pair<int, int> BoostEdge;

	class Generator
	{
	public:
		Generator() {}
		~Generator() {}
		void generate_graph(SimpleGraph &graph, CompleteGraph<int> &cgraph, BoostEdge* boost_edges, int* boost_weights, int nodes_count, int adjacency_count, int max_weight, int negative_amount, bool is_directed = true);
		void add_nodes(SimpleGraph &graph, CompleteGraph<int> &cgraph, BoostEdge* boost_edges, int* boost_weights, int nodes_count, int adjacency_count, int max_weight, int negative_amount, int to_add);

	private:
		bool check_values(int* array, int value, int i);
	};	
}

#endif